const DB = uniCloud.database();
const DBCmd = DB.command;
const $ = DB.command.aggregate;
let dbJQL = null
//当前登录用户id
let uid
const uniID = require('uni-id-common')
const options = require('./options.js')
module.exports = {
	_before: async function () { // 通用预处理器
		//客户端信息
		const clientInfo = this.getClientInfo()
		//云服务信息
		const cloudInfo = this.getCloudInfo()
		//token信息
		const token = this.getUniIdToken()
		dbJQL = uniCloud.databaseForJQL({ // 获取JQL database引用，此处需要传入云对象的clientInfo
			clientInfo
		})
		if(token) {
			const tokenRes  = await uniID.createInstance({
				clientInfo
			}).checkToken(token)
			
			if(tokenRes.uid) {
				uid = tokenRes.uid
			}
		}
	},
	/**
	 * getCustomerProducts获取客户匹配产品
	 * @param {string} customerId 客户id
	 * @returns {object} 返回值描述
	 */
	async getCustomerProducts(customerId) {
		// 参数校验，如无参数则不需要
		if (!customerId) { // 参数校验，如无参数则不需要
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: '参数不能为空'
			}
		}
		// 业务逻辑
		const products = await dbJQL.collection('mydb_product').aggregate()
			.match({
				customerId: customerId
			})
			.end()
		// 返回结果
		return {
			param1 //请根据实际需要返回值
		}
	},
	/**
		* getOptions获取客户匹配产品选项
	 * @param {string} customerId 客户id
	 * @returns {object} 返回值描述
	 */
	async getOptions(customerId) {
		// 参数校验，如无参数则不需要
		if (!customerId) { // 参数校验，如无参数则不需要
			return {
				errCode: 'PARAM_IS_NULL',
				errMsg: '参数不能为空'
			}
		}
		// 业务逻辑
		const data = {
			...options
		}
		// 返回结果
		return {
			msg: '成功',
			data
		}
	},
	
}
